// JavaScript Document
function loginInit(){
	$(".loginbox .textbox").focus(function(){
		$(this).addClass("focus");
		if (this.className.indexOf("loginname")>-1){
			this.style.color="";
			if (this.value=="请输入注册用户名或邮箱"){
				this.value="";
			}
		}
		if (this.className.indexOf("qqname")>-1){
			this.style.color="";
			if (this.value=="用户昵称 或 用户邮箱"){
				this.value="";
			}
		}
	}).blur(function(){
		$(this).removeClass("focus");
		if (this.className.indexOf("loginname")>-1){
			if (this.value==""){
				this.style.color="#aaa";
				this.value="请输入注册用户名或邮箱";
			}
		}
		if (this.className.indexOf("qqname")>-1){
			if (this.value==""){
				this.style.color="#aaa";
				this.value="用户昵称 或 用户邮箱";
			}
		}
	});	
	
	$(".newlogin .loginbox .close").click(function(){
		$(".newlogin").hide();
	});
	
	$(".loginbox .logintab li").click(function(){
		$(".loginbox .logintab li").removeClass("cur");
		this.className="cur";
		$(".loginbox .loginform").hide();
		$(".loginbox .loginform").get(this.attributes.num.value).style.display="block";
	});			
}

function getLength(str) { 
	var len = str.length; 
	var reLen = 0; 
	for (var i = 0; i < len; i++) {        
		if (str.charCodeAt(i) < 27 || str.charCodeAt(i) > 126) {    
			reLen += 2; 
		} else { 
			reLen++; 
		} 
	} 
	return reLen;    
} 

function checkUserName(formValue){
	var name = /^[\u4e00-\u9fa5\A-Za-z0-9\_]*$/;
	if (!name.test(formValue)){
		return "用户名只能是汉字，字母，数字和下划线。"
	}else{
		if (formValue==""){
			return "用户名不能为空。"
		}
		if (getLength(formValue)<6){
			return "用户名的长度不能小于6个字符。"
		}
	}
	return "";
}

function checkEmail(formValue){
	var reg = /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+((\.[a-zA-Z0-9_-]{2,3}){1,2})$/;
	if (!reg.test(formValue)){
		return "邮箱格式不正确。"
	}
	return "";
}

function checkPassword(formValue){
	if (formValue==""){
		return "密码不能为空。"
	}else if(formValue.length<6){
		return "密码的长度不能小于6个字符。"
	}
	return "";
}

function checkPassword2(formValue){
	var password=$(".loginbox .reg input.password").val();
	
	if (formValue!=password){
		return "确认密码和登陆密码必须相同。"
	}
	return "";
}

function checkCode(formValue){
	if (formValue==""){
		return "验证码不能为空。"
	}else if (formValue.length!=4){
		return "验证码不正确。"
	}
	return "";
}

function checkForm(){
	var returnValue="";
	var ok=true;
	$(".loginbox .reg input").each(function(){
		if (this.className.indexOf("username")>-1){
			returnValue=checkUserName(this.value);
			if (returnValue!=""){
				$("#regAccount").val("").focus();
				$(".newlogin .reg .regnametip").html(returnValue).show();
			}
		}else if (this.className.indexOf("email")>-1){
			returnValue=checkEmail(this.value);
			if (returnValue!=""){
				$("#regEmail").val("").focus();
				$(".newlogin .reg .regemailtip").html(returnValue).show();
			}
		}else if (this.className.indexOf("password2")>-1){
			returnValue=checkPassword2(this.value);
			if (returnValue!=""){
				$("#rePasswd").val("").focus();
				$(".newlogin .reg .regrepwdtip").html(returnValue).show();
			}
		}else if (this.className.indexOf("password")>-1){
			returnValue=checkPassword(this.value);
			if (returnValue!=""){
				$("#regPasswd").val("").focus();
				$(".newlogin .reg .regpwdtip").html(returnValue).show();
			}
		}else if (this.className.indexOf("textbox2")>-1){
			returnValue=checkCode(this.value);
			if (returnValue!=""){
				$("#regRandom").val("").focus();
				$(".newlogin .reg .regcodetip").html(returnValue).show();
			}
		}else if (this.className.indexOf("agree")>-1){
			if(!this.checked){
				returnValue="同意使用协议之后才能注册";
				$(".newlogin .reg .regagreetip").html(returnValue).show();
			}
		}
		
		if (returnValue!=""){
			this.focus();
			ok=false;
			return false;
		}
	});
	
	return ok;
}

function checkForm2(){
	var returnValue="";
	var ok=true;
	var account=$("#account");
	if(account.val()=="请输入注册用户名或邮箱" || account.val()=="用户昵称 或 用户邮箱")account.val("");
	
	$(".loginbox .normal input,.loginbox .qq input").each(function(){
		if (this.className.indexOf("loginname")>-1){
			returnValue=checkUserName(this.value);
			if (returnValue!=""){
				$("#account").val("").focus();
				$(".newlogin .loginform .loginnametip").html(returnValue).show();
			}
		}else if (this.className.indexOf("loginpwd")>-1){
			returnValue=checkPassword(this.value);
			if (returnValue!=""){
				$("#passwd").val("").focus();
				$(".newlogin .loginform .loginpwdtip").html(returnValue).show();
			}
		}else if (this.className.indexOf("textbox2")>-1){
			returnValue=checkCode(this.value);
			if (returnValue!=""){
				$("#random").val("").focus();
				$(".newlogin .loginform .logincodetip").html(returnValue).show();
			}
		}
		
		if (returnValue!=""){
			this.focus();
			ok=false;
			return false;
		}
	});
	
	return ok;
}

function popLogin(theURL,type) {
	$.get(theURL,{},function(data){
		$(".newlogin").remove();
		$("body").append(data);
		
		if (type==1){
			$(".newlogin .logintab li:first").removeClass("cur");
			$(".newlogin .logintab li:last").addClass("cur");
			$(".newlogin .normal").hide();
			$(".newlogin .reg").show();
		}
		
		center($(".newlogin"));
		
		loginInit();
	},"html");
}

function postLogin(){
	$(".newlogin .loginform .tip").hide();
	
	if(checkForm2()){
		var username = $("#account").val();
		var password = $("#passwd").val();
		var code = $("#random").val();
		var remember = $("#remember_name");
		
		if (remember.get(0).checked){
			var rememberValue=remember.val();
			$.post("Login!notifyLogin.action",{account:username,passwd:password,"random":code,remember_name:rememberValue},postLoginReturn,"xml");
		}else{
			$.post("Login!notifyLogin.action",{account:username,passwd:password,"random":code},postLoginReturn,"xml");
		}
	}
}

function postLoginReturn(xml){
	//alert(arguments[2].responseText);
	var result = $(xml).find("root").find("result").text();
	var msg = $(xml).find("root").find("msg").text();
	switch(result){
		case "1":
			window.location.reload();
			break;
		case "0":
			$(".newlogin .loginform .loginpwd").val("").focus();
			$(".newlogin .loginform .loginpwdtip").html(msg).show();
			break;
		case "-1":
			$(".newlogin .loginform .loginname").val("").focus();
			$(".newlogin .loginform .loginpwd").val("");
			$(".newlogin .loginform .loginnametip").html(msg).show();
			break;
		case "-2":
			$(".newlogin .loginform .textbox2").val("").focus();
			$(".newlogin .loginform .logincodetip").html(msg).show();
			break;							
	}
}

function postRegister(){
	$(".newlogin .loginform .tip").hide();
	
	if(checkForm()){	
		var username = $("#regAccount").val();
		var email = $("#regEmail").val();
		var password = $("#regPasswd").val();
		var code = $("#regRandom").val();
		
		$.post("Reg!notifyReg.action",{account:username,email:email,passwd:password,"random":code},postRegisterReturn,"xml");
	}
}

function postRegisterReturn(xml){
	//alert(arguments[2].responseText);
	var result = $(xml).find("root").find("result").text();
	var msg = $(xml).find("root").find("msg").text();
	switch(result){
		case "1":
			window.location.reload();
			break;
		case "0":
			alert(msg);
			break;
		case "-1":
			$("#regAccount").val("").focus();
			$(".newlogin .reg .regnametip").html(msg).show();
			break;
		case "-2":
			$("#regRandom").val("").focus();
			$(".newlogin .reg .regcodetip").html(msg).show();
			break;
		case "-3":
			$("#regEmail").val("").focus();
			$(".newlogin .reg .regemailtip").html(msg).show();
			break;
	}
}

function qqLogin(openId){
	$.post("Login!qqLogin.action",{qqOpenId:openId},function(xml){
		var result = $(xml).find("root").find("result").text();
		var msg = $(xml).find("root").find("msg").text();
		switch(result){
			case "1":
				window.location.reload();
				break;
			case "0":
				popLogin('qqlogin.jsp');
				break;			
		}
	},"xml");
}

function changeValidateCode(obj) { 
	//获取当前的时间作为参数，无具体意义 
	var timenow = new Date().getTime(); 
	//每次请求需要一个不同的参数，否则可能会返回同样的验证码 
	//这和浏览器的缓存机制有关系，也可以把页面设置为不缓存，这样就不用这个参数了。 
	obj.src="rand.action?d="+timenow; 
}

function qqBind(){
	$(".newlogin .loginform .tip").hide();
	
	if(checkForm2()){
		var username = $("#account").val();
		var password = $("#passwd").val();
		
		$.post("Login!bindAccount.action",{account:username,passwd:password,qqOpenId:QQopenId},function(xml){
			var result = $(xml).find("root").find("result").text();
			var msg = $(xml).find("root").find("msg").text();
			switch(result){
				case "1":
					window.location.reload();
					break;
				case "0":
				case "-1":
					$(".newlogin .loginform .loginname").val("").focus();
					$(".newlogin .loginform .loginnametip").html(msg).show();
					break;		
			}
		},"xml");
	}
}

function qqRegister(){
	$(".newlogin .loginform .tip").hide();
	
	if(checkForm()){	
		var username = $("#regAccount").val();
		var email = $("#regEmail").val();
		var password = $("#regPasswd").val();
		var code = $("#regRandom").val();
		
		$.post("Reg!qqReg.action",{account:username,email:email,passwd:password,"random":code,qqOpenId:QQopenId},postRegisterReturn,"xml");
	}
}

